# -*- coding: utf-8 -*-
import subprocess
import sys
import os

def switch_python_version():
    print("可用的 Python 版本:")
    try:
        # 使用 py -0 列出所有已安装的 Python 版本
        result = subprocess.run(
            ["py", "-0"],
            capture_output=True,
            text=True
        )
        
        if result.returncode != 0:
            print("未找到 Python Launcher (py.exe)")
            return
            
        # 解析可用的 Python 版本
        versions = []
        for line in result.stdout.splitlines():
            if "-" in line:  # 格式如 "-3.12-64 *"
                version = line.split("-")[1].split("-")[0]  # 提取版本号
                versions.append(version)
                print(f"{len(versions)}. Python {version}")
        
        if not versions:
            print("未找到可用的 Python 版本")
            return
        
        # 让用户选择版本
        choice = input("\n请选择要使用的 Python 版本 (输入序号): ")
        try:
            version = versions[int(choice) - 1]
        except:
            print("无效的选择")
            return
        
        # 重建虚拟环境
        print(f"\n使用 Python {version} 重建虚拟环境...")
        subprocess.check_call([
            "py",
            f"-{version}",  # 使用 py -3.12 的格式
            "rebuild_venv.py"
        ])
        
    except Exception as e:
        print(f"切换 Python 版本失败: {e}")
        sys.exit(1)

if __name__ == "__main__":
    switch_python_version() 